Chcę monitorować zdarzenie odmontowania na moim serwerze NAS. ma osobną stronę do odmontowania wszystkich dysków USB. Umieściłem to za pomocą iframe i chcę utrzymać ładowanie witryny, dopóki źródło obrazu nie zostanie zmienione na określone źródło (zielony pasek wskazujący, że zostało odinstalowane). Powodem, dla którego chcę go ładować, jest to, że wywołuję go za pomocą funkcji jquery.get z innej witryny i chcę, aby poczekał, aż proces odinstalowania zostanie zakończony. Byłoby świetnie, gdyby było to możliwe tylko w zwykłym javascript, ale w razie potrzeby mogę również dołączyć jquery. Oto, co mam do tej pory: Natychmiast otrzymuję błąd, że element „uiView_TestPic” nie istnieje, nawet jeśli dodam limit czasu przed uruchomieniem sprawdzania. Dołączona witryna iFrame przestaje ładować się po załadowaniu wszystkich obrazów, a nie po zakończeniu całego procesu.
2021-02-05 08:21:01
Po pierwsze, obie ramki muszą działać w tej samej domenie, ponieważ przeglądarki uniemożliwiają kod w jednej ramce dostęp do czegokolwiek z drugiej ramki, jeśli są to różne domeny. Jeśli dwie ramki nie znajdują się w tej samej domenie, element iframe będzie musiał monitorować się i powiadamiać drugą ramkę, gdy skończy, używając czegoś takiego jak window.postMessage (). Jeśli znajdują się w tej samej domenie, jest to nieco skomplikowane. Musisz pobrać element iframe (znajduje się w twoim głównym dokumencie). Musisz poczekać, aż będzie gotowy (ponieważ musi załadować swoją własną zawartość). Następnie musisz pobrać dokument w ramce iframe. Następnie możesz znaleźć żądany obraz w ramce iframe. Wtedy możesz obserwować jego zawartość. Oczywiście możesz to zrobić tylko wtedy, gdy ramka iframe znajduje się w tej samej domenie co strona główna (ze względu na ograniczenia bezpieczeństwa). Najpierw dodaj identyfikator do elementu iframe: